package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.SignCalc;
import cn.wolfcode.trip.base.domain.SignDetail;

import java.util.List;

public interface ISignCalcService {
    /**
     * 通过过用户的id查询昨天有签到
     * @param userId
     * @return
     */
    SignCalc queryYesterdayByUserId(Long userId);

    /**
     * 通过用户的id查询出今天是否有签到
     * @param userId
     * @return
     */
    SignCalc todaySign(Long userId);

    /**
     * 添加签到
     * @param signCalc
     */
    void addSign(SignCalc signCalc);

    /**
     * 查询出昨天的累计签到的次数
     * @param userId
     * @return
     */
    SignCalc getSignRecord(Long userId);

    /**
     * 页面回显
     * @param userId
     * @param yearAndMoth
     * @return
     */
    List<String> selectListDay(Long userId,String yearAndMoth);

    /**
     * 查询用户的积分
     * @param userId
     * @return
     */
    SignDetail queryGrade(Long userId);

    /**
     * 累加积分
     * @param signDetail
     */
    void addGrade(SignDetail signDetail);

    /**
     * 领取修改积分
     * @param signDetail
     */
    void updateGrade(SignDetail signDetail);

    /**
     * 查询连续签到数
     * @param id
     * @return
     */
    Integer querySuccRecord(Long id);

    /**
     * 满7天重置签到次数
     * @param userId
     * @param days
     */
    void updateSuccRecord(Long userId,Integer days);

    /**
     * 首次签到判断
     * @param userId
     * @return
     */
    Boolean queryFirst(Long userId);

    /**
     * 为新强到用户添加默认表格
     * @param userId
     */
    void save(Long userId);
}
